第5课 动态规划 策略评估 策略迭代 价值迭代

学习笔记 强化学习 动态规划
创建于 2026-05-09
目录

第5课:动态规划、策略评估、策略迭代、价值迭代

0. 一句话理解

当环境模型已知时,可以利用 Bellman 方程,对价值函数反复迭代,从而直接求出最优策略。


1. 动态规划在 RL 中是什么

这里的动态规划(Dynamic Programming, DP)不是狭义的题型技巧,而是指:

利用 Bellman 方程对所有状态的价值进行系统更新,直到收敛。

适用前提: - 已知环境模型 - 即知道 $P(s'\mid s,a)$ 和奖励函数


2. 策略评估 Policy Evaluation

给定一个固定策略 $\pi$,我们希望计算它的价值函数 $V^\pi(s)$。

根据 Bellman expectation equation:

$$ V^\pi(s)=\sum_a \pi(a\mid s)\sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V^\pi(s')\bigr] $$

由于右边又含 $V^\pi$,通常采用迭代更新:

$$ V_{k+1}(s)\leftarrow \sum_a \pi(a\mid s)\sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V_k(s')\bigr] $$

操作流程

  1. 初始化 $V_0(s)$,常见设为 0
  2. 对所有状态反复更新
  3. 直到变化很小,视为收敛

直觉

先随便猜一个状态价值,再不断用 Bellman 方程修正它。


3. 策略改进 Policy Improvement

当我们已经得到当前策略的价值函数 $V^\pi$ 后,可以用它来比较某状态下不同动作的一步前瞻值:

$$ q_\pi(s,a)=\sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V^\pi(s')\bigr] $$

然后选取最优动作:

$$ \pi'(s)=\arg\max_a q_\pi(s,a) $$

这意味着:

在当前状态下,直接选择“当前奖励 + 后续状态价值”最大的动作。


4. 策略迭代 Policy Iteration

策略迭代就是不断交替执行:

  1. 策略评估
  2. 策略改进

流程可记为:

$$ \pi_0 \rightarrow V^{\pi_0} \rightarrow \pi_1 \rightarrow V^{\pi_1} \rightarrow \pi_2 \rightarrow \cdots $$

直到策略不再变化。

直觉

  • 先评估“现在这套策略好不好”
  • 再把它改得更好一点
  • 反复做,最终逼近最优策略

5. 价值迭代 Value Iteration

策略迭代的一个缺点是: - 每轮都要把当前策略评估得比较充分

价值迭代更直接,它不等评估完全结束,而是每次更新时直接做最优动作选择:

$$ V_{k+1}(s)\leftarrow \max_a \sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V_k(s')\bigr] $$

它对应 Bellman optimality equation。

收敛后如何得到策略

当 $V_k$ 收敛到 $V^*$ 后,策略由下式给出:

$$ \pi^(s)=\arg\max_a \sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V^(s')\bigr] $$


6. 策略迭代 vs 价值迭代

策略迭代

  • 每轮先完整评估,再改进
  • 单轮计算较重
  • 思路更清晰

价值迭代

  • 直接朝最优价值逼近
  • 更简洁
  • 常常更高效

粗略理解: - 策略迭代:先想清楚,再动手 - 价值迭代:边想边做,直接逼近最优


7. 一个简单数值例子

假设状态 $s$ 下有两个动作:

  • 动作 A:即时奖励 2,之后到达 $s_1$
  • 动作 B:即时奖励 0,之后到达 $s_2$

若当前估计: - $V(s_1)=5$ - $V(s_2)=10$ - $\gamma=0.9$

则: $$ q(s,A)=2+0.9\times 5=6.5 $$

$$ q(s,B)=0+0.9\times 10=9 $$

因此应选 B。

这个例子本质上体现的就是“策略改进”或“价值迭代”的动作选择逻辑。


8. DP 与 Bellman 方程的关系

动态规划不是凭空来的,它完全依赖 Bellman 递推结构。

也就是说:


9. 这套方法的意义

动态规划为强化学习提供了一个“理想参考系”:

如果模型已知,最优策略是可以系统算出来的。

这点非常重要,因为后面模型未知时的很多方法,本质上都是对 DP 思路的近似化:

  • Monte Carlo:采样整条回报
  • TD:用自举方式近似 Bellman 更新
  • Q-learning:直接学最优 Q
  • DQN:神经网络近似 Q

10. 局限性

动态规划虽然理论漂亮,但有明显限制:

10.1 需要已知环境模型

现实任务里转移概率往往未知。

10.2 状态空间通常太大

一旦状态空间巨大,就无法逐状态遍历更新。

因此 DP 更像是: - 理论基础 - 小规模问题工具 - 后续无模型方法的原型


11. 易混淆点

策略评估不是在更新策略

它只是算“当前策略有多好”。

策略改进才是更新策略

它利用当前估计的价值函数来改策略。

价值迭代不是“先有策略再评估”

它直接针对最优 Bellman 方程更新价值。


12. 我的理解(可补充)

DP 像是 RL 里的“解析原型”:

  • 先给出完全理想的求解方式
  • 再让后续各种采样法、近似法从这里生长出来

13. 复习问题

  1. 动态规划在 RL 中的适用前提是什么?
  2. 策略评估在做什么?
  3. 策略改进在做什么?
  4. 策略迭代和价值迭代有什么区别?
  5. 为什么说后续很多 RL 算法都能看作 DP 的近似版本?

14. 前后关联

前置

后续